.\" Copyright (C) 2004 International Business Machines Corporation
.\" Written by Kathy Robertson based on the Trusted Computing Group Software Stack Specification Version 1.1 Golden
.\"
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "Tspi_TPM_CollateIdentityRequest" 3 "2004-05-26" "TSS 1.1" "TCG Software Stack Developer's Reference"
.SH NAME
Tspi_TPM_CollateIdentityRequest \- Gets all the informatin necessary to send to a trusted third party (TTP), repartory to asking the TTP to create a certificate for identity.
.SH "SYNOPSIS"
.ad l
.hy 0
.nf
.B #include <tss/platform.h>
.B #include <tss/tcpa_defines.h>
.B #include <tss/tcpa_typedef.h>
.B #include <tss/tcpa_struct.h>
.B #include <tss/tss_typedef.h>
.B #include <tss/tss_structs.h>
.B #include <tss/tspi.h>
.sp
.BI "TSS_RESULT Tspi_TPM_CollateIdentityRequest(TSS_HTPM " hTPM ",                     TSS_HKEY         " hKeySRK ","
.BI "                                           TSS_HKEY " hCAPPubKey ","
.BI "                                           UINT32   " ulIdentityLabelData ",      BYTE*            " rgbIdentityLabelData ","
.BI "                                           TSS_HKEY " hIdentityKey ",             TSS_ALGORITHM_ID " algid ","
.BI "                                           UINT32*  " pulTCPAIdentityReqLength ", BYTE**           " prgbTCPAIdentityReq ");"
.fi
.sp
.ad
.hy

.SH "DESCRIPTION"
.PP
\fBTSS_TPM_CollateIdentityRequest\fR  
creates an identity key, binds it to the label and returns a certificate request package. The privacty CA requires this certificate request to attest the identity key.

Only the Owner of the TPM has the privledge of creating a TPM identity key.

The symmetric session key is required to provide confidentiality of the "TCPA_IDENTITY_REQ" data structure, which should be sent to the Privacy CA chosen by the owner. 
.SH "PARAMETERS"
.PP
.SS hTPM
Handle of the TPM object.
.PP
.SS hKeySRK
Handle to the key object representing the Storage Root Key
.PP
.SS hCAPubKey
Handle to the key object representing the public key of the CA which signs the certificate of the created identity key.
.PP
.SS ulIdentityLabelLength
Supplies the length (in bytes) of the rgbIdentityLabelData parameter
.PP
.SS rgbLabelData
Pointer to a memory block containing the identity label, which should be a UNICODE string
.PP
.SS hIdentityKey
Handle to the identity key object
.PP
.SS algid
The type of symmetric algorithm touse as requred by the Enhanced CA.
.PP
.SS pulTCPAIdentityReqLength
Recieves the length (in bytes) of the prgbTCPAIdentityReq parameter
.PP
.SS prgbTCPAIdentyReq
Pointer to the memory block containing the certicficate request structure. 
.SH "RETURN CODES"
.PP
\fBTspi_TPM_CollateIdentityRequest\fR returns TSS_SUCCESS on success, otherwise one of the following values are returned:
.TP
.SM TSS_E_INVALID_HANDLE
Either \fBhTPM\fR or \fBhKeySRK\fR or \fBhCAPubKey\fR is not a valid handle.
.TP
.SM TSS_E_BAD_PARAMETER

.TP
.SM TSS_E_INTERNAL_ERROR
An error occurred internal to the TSS.
.SH "CONFORMING TO"

.PP
\fBTspi_TPM_CollateIdentityRequest\fR conforms to the Trusted Computing Group Software Specification version 1.1 Golden
.SH "SEE ALSO"

.PP
\fBTspi_Context_LoadKeyByUUID\fR(3).
